﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AIS.SDK.Model
{
    public class LaunchUBERequest
    {
        public string token { get; set; }
        public string deviceName { get; set; }

        public string reportName { get; set; }
        public bool fireAndForget { get; set; }
        public string reportVersion { get; set; }

        public DataSelection dataSelection { get; set; }

    }

    public class DataSelection
    {
        public criteria[] criteria { get; set; }
    }
    public class criteria
    {
        /// <summary>
        /// Allowed Values: [ "EQUAL", "NOT_EQUAL", "LESS_THAN", "GREATER_THAN", "LESS_EQUAL", "GREATER_EQUAL", "VALUE_IN_LIST", "NOT_VALUE_IN_LIST", "WITHIN_A_RANGE", "NOT_WITHIN_A_RANGE", "EQUAL_OR_EMPTY" ]
        /// </summary>
        public string comparisonType { get; set; }
        /// <summary>
        /// Allowed Values: [ "OR", "AND" ]
        /// </summary>
        public string @operator { get; set; }

        public SelectionValue predicate { get; set; }

        public SelectionValue subject { get; set; }
    }


    public class SelectionValue
    {
        public string dictItem { get; set; }
        /// <summary>
        /// Allowed Values: [ "SINGLE", "LIST", "RANGE" ]
        /// </summary>
        public string literalType { get; set; }

        public string table { get; set; }

        public string view { get; set; }

        public  string[] values { get; set; }
    }
}
